#include "Tools.h"

bool Tools::_sendFile(std::string filePath, ClientSocketHandler * clientSocketHandler) {
    // 打开文件
    FILE *file = fopen(filePath.c_str(), "r");
    if(NULL == file) {
        PrintLine("文件 [%s] 打开失败", filePath.c_str());
        return false;
    }
    PrintLine("文件 [%s] 打开成功", filePath.c_str());

    // 读文件、写文件
    char buff[4096];            // 缓存区（保存独到的内容）
    size_t buffLength = 0;      // 读到的文件长度
    // 若成功读到内容，则发送文件
    while ((buffLength = fread(buff, sizeof(char), sizeof(buff), file)) > 0) {
        // 写入失败
        if(false == clientSocketHandler->_writeSocket(buff, buffLength)) {
            PrintLine("文件发送失败");
            fclose(file);
            return false;
        }
    }

    fclose(file);
    return true;
}